package com.controller;

import java.util.Arrays;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.annotation.IgnoreAuth;

import com.entity.DiscusssaishipiaowuEntity;
import com.entity.view.DiscusssaishipiaowuView;

import com.service.DiscusssaishipiaowuService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;

/**
 * 赛事票务评论表
 * 后端接口
 */
@RestController
@RequestMapping("/discusssaishipiaowu")
public class DiscusssaishipiaowuController {
    @Autowired
    private DiscusssaishipiaowuService discusssaishipiaowuService;

    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,DiscusssaishipiaowuEntity discusssaishipiaowu,
                  HttpServletRequest request){
        EntityWrapper<DiscusssaishipiaowuEntity> ew = new EntityWrapper<DiscusssaishipiaowuEntity>();

        PageUtils page = discusssaishipiaowuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusssaishipiaowu), params), params));

        return R.ok().put("data", page);
    }

    /**
     * 前端列表
     */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,DiscusssaishipiaowuEntity discusssaishipiaowu,
                  HttpServletRequest request){
        EntityWrapper<DiscusssaishipiaowuEntity> ew = new EntityWrapper<DiscusssaishipiaowuEntity>();

        PageUtils page = discusssaishipiaowuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusssaishipiaowu), params), params));
        return R.ok().put("data", page);
    }

    /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( DiscusssaishipiaowuEntity discusssaishipiaowu){
        EntityWrapper<DiscusssaishipiaowuEntity> ew = new EntityWrapper<DiscusssaishipiaowuEntity>();
        ew.allEq(MPUtil.allEQMapPre( discusssaishipiaowu, "discusssaishipiaowu"));
        return R.ok().put("data", discusssaishipiaowuService.selectListView(ew));
    }

    /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(DiscusssaishipiaowuEntity discusssaishipiaowu){
        EntityWrapper< DiscusssaishipiaowuEntity> ew = new EntityWrapper< DiscusssaishipiaowuEntity>();
        ew.allEq(MPUtil.allEQMapPre( discusssaishipiaowu, "discusssaishipiaowu"));
        DiscusssaishipiaowuView discusssaishipiaowuView =  discusssaishipiaowuService.selectView(ew);
        return R.ok("查询赛事票务评论表成功").put("data", discusssaishipiaowuView);
    }

    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        DiscusssaishipiaowuEntity discusssaishipiaowu = discusssaishipiaowuService.selectById(id);
        return R.ok().put("data", discusssaishipiaowu);
    }

    /**
     * 前端详情
     */
    @IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        DiscusssaishipiaowuEntity discusssaishipiaowu = discusssaishipiaowuService.selectById(id);
        return R.ok().put("data", discusssaishipiaowu);
    }




    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody DiscusssaishipiaowuEntity discusssaishipiaowu, HttpServletRequest request){
        //ValidatorUtils.validateEntity(discusssaishipiaowu);
        discusssaishipiaowuService.insert(discusssaishipiaowu);
        return R.ok();
    }

    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody DiscusssaishipiaowuEntity discusssaishipiaowu, HttpServletRequest request){
        //ValidatorUtils.validateEntity(discusssaishipiaowu);
        discusssaishipiaowuService.insert(discusssaishipiaowu);
        return R.ok();
    }



    /**
     * 获取用户密保
     */
    @RequestMapping("/security")
    @IgnoreAuth
    public R security(@RequestParam String username){
        DiscusssaishipiaowuEntity discusssaishipiaowu = discusssaishipiaowuService.selectOne(new EntityWrapper<DiscusssaishipiaowuEntity>().eq("", username));
        return R.ok().put("data", discusssaishipiaowu);
    }


    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    @IgnoreAuth
    public R update(@RequestBody DiscusssaishipiaowuEntity discusssaishipiaowu, HttpServletRequest request){
        //ValidatorUtils.validateEntity(discusssaishipiaowu);
        discusssaishipiaowuService.updateById(discusssaishipiaowu);//全部更新
        return R.ok();
    }



    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        discusssaishipiaowuService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }




}
